package com.syedu.day10;

/**
 * 接口定义
 * 1.接口中不能有普通属性,构造方法,普通方法,只能含有公开静态的常量属性以及抽象方法(可以简写)
 * 2.JDK8.0开始,接口提供了多个新的特性:
 *      a.接口中可以提供默认实现的普通方法,但是必须使用default来定义
 *      b.接口中支持静态方法
 * 3.接口是用来被类实现的,关键字implements,实现就类似于继承关系
 *   一个类如果实现了接口,则必须重写这个接口中所有的抽象方法,除非这个类是抽象类
 *   注意: 类和类之间是继承,类和接口之间是实现,接口和接口之间也是继承
 * 4.一个类只能直接继承另一个类
 *   一个类可以实现多个接口,多个接口之间用,隔开,当然也要求重写这些接口中所有的抽象方法
 * 5.接口之间可以实现多重继承,即一个接口可以同时继承多个接口
 */
public interface Ia extends Ib,Ic{
    /**
     * 属性,公开静态的常量属性
     * 注意:属性可以简写,省略public static final
     */
    int RECT = 1;
    int CIRCLE = 2;

    /**
     * 接口中没有构造方法,所以当然就不能实例化对象(不能new)
     */
    /*public Ia(){

    }*/

    /**
     * 接口中不能有普通方法,接口中的方法都必须是公开抽象的方法
     * 注意:方法可以简写,省略public,abstract
     */
   /* public void methodA(){

    }*/
    void methodA();

    /**JDK8.0默认方法*/
    default void method2() {
        System.out.println("接口的默认方法...");
    }

    /**JDK8.0静态方法*/
    public static void method3() {
        System.out.println("接口中的静态方法");
    }
}
